Detecting Structural Refactoring Conflicts Using Critical Pair Analysis
نویسندگان
چکیده
Refactorings are program transformations that improve the software structure while preserving the external behaviour. In spite of this very useful property, refactorings can still give rise to structural conflicts when parallel evolutions to the same software are made by different developers. This paper explores this problem of structural evolution conflicts in a formal way by using graph transformation and critical pair analysis. Based on experiments carried out in the graph transformation tool AGG, we show how this formalism can be exploited to detect and resolve refactoring conflicts.
منابع مشابه
Resolving Conflict and Dependency in Refactoring to a Desired Design
Refactoring is performed to improve software quality while leaving the behaviour of the system unchanged. In practice there are many opportunities for refactoring, however, due to conflicts and dependencies between refactorings, only certain orders of refactorings are applicable. Selecting and ordering an appropriate set of refactorings is a challenging task for a developer. We propose a novel ...
متن کاملAttributed graph transformation with inheritance: Efficient conflict detection and local confluence analysis using abstract critical pairs
Inheritance is an important and widely spread concept enabling the elegant expression of hierarchy in object-oriented software programs or models. It has been defined for graphs and graph transformations enhancing the applicability of this formal technique. Up to now, for the analysis of transformationswith inheritance a flattening constructionhas beenused, which yields all the well-known resul...
متن کاملFormalization and Automation of Time-Space Conflict Analysis
With increasing pressure for shorter delivery schedules, space is a critical resource at construction sites. Current industry practice lacks a formalized approach or a tool to help project managers analyze spatial conflicts between activities prior to construction. Consequently, time-space conflicts occur frequently and significantly impact construction processes. Time-space conflicts have thre...
متن کاملOn the Use of Graph Transformations for Model Refactoring
Model-driven software engineering promotes the use of models and transformations as primary artifacts. Several formalisms can be used for the specification of model transformations. We propose to represent models as graphs, and model transformations as graph transformations. In particular, we focus on the activity of model refactoring, and show how graph transformation theory can provide formal...
متن کاملSolving the TTC Java Refactoring Case with FunnyQT
This paper describes the FunnyQT1 [1, 2] solution of the TTC 2015 Java Refactoring Case [3]. It solves all core and exception tasks with the exception of Extension 3: Detecting Refactoring Conflicts and has been elected as overall winner of the case. The solution project is available on Github2, and it is set up for easy reproduction on a SHARE image3. FunnyQT is a model querying and transforma...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Electr. Notes Theor. Comput. Sci.
دوره 127 شماره
صفحات -
تاریخ انتشار 2005